#coding=utf-8

import time
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import formataddr
from email.mime.application import MIMEApplication
import datetime
import arrow
import sys
reload(sys)
sys.setdefaultencoding('utf8')

consistence_file='/home/marvin/daily_job/py_job/consistence'
sendFrom='ITPost@bjshell.com' #发件人邮箱账号，为了后面易于维护，所以写成了变量
sendTo=["shijian.zhang@ykd.me",'zhaoyang.yu@bjshell.com'] #收件人邮箱账号，为了后面易于维护，所以写成了变量
# sendTo=["shijian.zhang@ykd.me"] #收件人邮箱账号，为了后面易于维护，所以写成了变量
passwd="itpost.123" #授权码

consistence_file='/home/marvin/daily_job/py_job/consistence'
fujian=u'/home/marvin/daily_job/py_job/'
# consistence_file='consistence'
a = time.localtime(time.time() - 24 * 60 * 60)  ##获取昨天日期
yesterday = time.strftime("%Y年%m月%d日", a)
fujian=fujian+time.strftime("%Y%m%d", a)+'.xls'
filename=yesterday+u'环比数据'
# 情景1：与前一天HOS数据保持一致
mail_content1='''
你好，

%s的日均环比数据已出，还请放心使用。

'''%(yesterday)
# 情景2：与前一天HOS数据有差异
mail_content2='''
您好，

经核对POS和中间库，%s的大数据平台的数据结果存在部分差异，我们正在抓紧核查中，数据修复后会重新发送正确的日均环比数据。

'''%(yesterday)



def mymail(sendFrom,sendTo,passwd,message,subject):
    '''
    发送邮件的方法
    :param sendFrom: 发送人邮箱
    :param sendTo: 收件人邮箱
    :param passwd: 发送邮箱授权码
    :param msg: 发送信息
    :return:
    '''
    ret=True
    msg=MIMEMultipart()
    msg['From']=formataddr(["环比数据",sendFrom])   #括号里的对应发件人邮箱昵称、发件人邮箱账号
    # msg['Subject'] = "环比数据"  # 邮件的主题，也可以说是标题
    msgText = MIMEText(message)
    msg.attach(msgText)

    if subject==0:
        msg['Subject']="环比数据" #邮件的主题，也可以说是标题
        # 构造附件1，传送当前目录下的 test.txt 文件
        att1 = MIMEApplication(open(fujian, 'rb').read())
        att1.add_header('Content-Disposition', 'attachment', filename=u"%s.xls" % (time.strftime("%Y%m%d", a)))
        msg.attach(att1)

    elif subject==1:
        msg['Subject'] = "环比数据异常"  # 邮件的主题，也可以说是标题

    server=smtplib.SMTP("smtp.partner.outlook.cn",587)  #发件人邮箱中的SMTP服务器，端口是465
    server.starttls()
    server.login(sendFrom,passwd)    #括号中对应的是发件人邮箱账号、邮箱密码
    server.sendmail(sendFrom,sendTo,msg.as_string())   #括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
    server.quit()   #这句是关闭连接的意思
    return ret


def huanbimail(flag):
    if flag=='0':
        mymail(sendFrom,sendTo,passwd,mail_content1,subject=0)
    else:
        mymail(sendFrom, sendTo, passwd, mail_content2, subject=1)

if __name__ == '__main__':
    flag = '0'
    with open(consistence_file, 'r') as f:
        flag = f.read()
    if flag == '0':
        huanbimail('0')
    else:
        huanbimail('1')
